# 字符串表现形式
a = "I'm Tom"
b = 'Tom said:" I am Tom'
c = 'Tom said:" I\'m Tom"' # \' 表示单引号的意思
d = '''Tom said:"I'm Tom"'''
# print(a)
# print(b)
# print(c)
# print(d)
e = """Tom said :"I'm Tom" """
f = "Tom \n aa"
g = r"Tom \n aa"
# print(e)
# print(f)
# print(g)

# 字符串切片
word = "longzai"
# todo：下标从左面开始是0
# l = 0; 0 = 1; n =2; g = 3; z = 4; a = 5; i = 6
"""print(word[0]) # l
print(word[1]) # 0
print(word[2]) # n
print(word[3]) # g
print(word[4]) # z"""
# 下标从右面开始是-1
# i = -1;a = -2;z = -3;g = -4;n = -5;o = -6;l = -7
"""print(word[-1]) # i
print(word[-2]) # a
print(word[-3]) # z
print(word[-4]) # g
print(word[-5]) # n"""
QC1 = "辽宁省沈阳市旭辉中心B座2901沁创一达IT培训第一期"
# 我想取出旭
# print(QC1[6]) # 旭
# print(QC1[-21]) # 旭
# todo:切片：[start:end:step]
# start：开始的长度
# end：结束的长度
# step：步进
# [start:end]
# print(QC1[0:3]) # 取出辽宁省
# print(QC1[6:10]) # 取出旭辉中心
# print(QC1[16:20]) # 取出沁创一达
# print(QC1[12:16]) # 取出2901
# print(QC1[:]) # 开始和结束都是空的，取出全部
# print(QC1[2:]) # 从下标第二个开始往后都要
# QC1 = "辽宁省沈阳市旭辉中心B座2901沁创一达IT培训第一期"
#todo:[start:end:step]
# print(QC1[0:3:2]) #从0开始取到2结束，每隔2个取值 # 辽省
# print(QC1[2:8:3]) # 省市
# print(QC1[5:15:6]) # 市座
# print(QC1[::-1]) # todo: step是-1 ，倒序

# 字符串的相关方法
student_info = "我叫一二三，今年23岁，男"
# todo：获取字符串的长度
# print(len(student_info)) # 13

# 查找字符串所在的索引位置 todo：【find】【index】效果一样
"""print(student_info.find("今")) #查找今所在的索引位置
print(student_info.index("男")) # 12"""

# 查找最大索引，如果有重复的对象，返回索引最大值 todo:【rfind】
"""print(student_info.rfind("，"))
print(student_info.rfind("白")) # 如果没有 返回 -1"""

# 统计逗号出现了几次
# print(student_info.count("，"))
stu_info = "abcqqq1asdasd"
# print(stu_info.capitalize())# todo:将首字母大写
# print(stu_info.endswith("d")) # todo:判断最后一位是否是d
# print(stu_info.endswith("e")) # 判断最后一位是否是e
# print(stu_info.lower()) # 把字符串里面的内容都转变成小写
# print("AAA".lower()) # 把大写的AAA 转变成了小写
# print(stu_info.replace("1","沈腾"))

# todo：任何字符串的方法都不会改变原始字符串，因为字符串是不可变的
# print(stu_info)print

# 那如果我想要使用新的字符串呢？ 定义变量如何接收
"""list_obj = stu_info.split("1")
print(list_obj) # ['abcqqq', 'asdasd']
new_str = stu_info.replace("a","沈腾")
print(new_str)
new_str1 = str(list_obj).replace("a","沈腾")
print(new_str1)"""


# todo:成员运算符
"""str_o1 = "喜洋洋"
if "喜" in str_o1:
    print("喜在喜洋洋字符串里")
else:
    print("喜不在喜洋洋字符串")

if "懒" not in str_o1:
    print("懒不在喜洋洋里面")
else:
    print("懒在喜洋洋里面")"""

# 身份运算符
# a1 = 10
# b1 = 10
# if a1 is b1: # todo：is 比较的是地址值
#     print("a1和b1的地址值一样")
# else:
#     print("a1和b1的地址值不一样")

# todo：id 可以检查地址空间
# 整数类型，如果值一样，地址值也是一样的
"""print(id(a1)) # 查看 a1 的地址值
print(id(b1)) # 查看 a2 的地址值"""

# todo：字符串类型，如果值一样，地址值也是一样的
"""str_a = "a"
str_b = "a"
print(id(str_a))
print(id(str_b))"""

# todo:元组类型，如果值一样，地址值也是一样的
"""tuple_a = (1,2,3)
tuple_b = (1,2,3)
print(id(tuple_a))
print(id(tuple_b))"""

# todo：列表类型，就算值一样，地址值也不会一样
a_list = [1,2,3]
b_list = [1,2,3]
# print(id(a_list))
# print(id(b_list))

"""if a_list is b_list:
    print("两个列表地址值一样")
else:
    print("两个列表地址值不一样")"""

if a_list == b_list: # == 比较的是列表里面的值
    print("两个列表值一样")
else:
    print("两个列表值不一样")